package tree.leetcode_543_easy;

public class DiameterOfBinaryTree {
    private int max = 0;
    public int diameterOfBinaryTree(TreeNode root) {
        dfs(root);
        return max;
    }
    public int dfs(TreeNode root){
        if(root == null){
            return 0;
        }
        int left = dfs(root.left);
        int right = dfs(root.right);
        //任意一个节点的直径 左树的深度 + 右树的深度
        int height = left + right;
        //记录每一个节点的直径，取更大的。
        max = Math.max(max,height);
        //返回深度的值
        return Math.max(left,right) + 1;
    }
}
